• Aucun résultat trouvé

gae  e e

N/A
N/A
Protected

Academic year: 2022

Partager "gae  e e"

Copied!
9
0
0

Texte intégral

(1)

Introdution à la programmation

Nousavonsvu,danslehapitrepréédent, equ'estunalgorithmeetunertainnombrede

façonspourexéuterlesalgorithmes

hh

àlamain

ii

.Nousallonsvoir,dansehapitre,omment utiliser laprogrammation pourexéuter lesalgorithmes, ommenton met en plae elle-i sur

unordinateurmoderne(interprétationet ompilation).Nousdonneronsunpremierexemplede

programmesoure,enlangageC.NousdérironsquelquesompilateursCetommentmettreen

plaenotreprogrammesureux-i.

(2)

2.1 Notions théoriques

2.1.1 Qu'est-e que la programmation?

Un ordinateur, et qu'importepourl'instantune dénition préise,peutêtreutilisédansdes

butsdivers:pourfairetournerdesjeux('estsouventdenosjourslapremièreprisedeontat,

pourles jeunes tout au moins), pour utiliserdes logiiels de bureautique (traitement de texte,

tableur...),pouravoiraèsàInternet...Cependantils'agitd'ativitésspéialisées.L'ativitéla

plus versatile, elle pour laquelle les ordinateurs ont été onçus à l'origine, est d'eetuer des

aluls omplexesàdérire. Lafaçondedérire esaluls (dansunsenstrès large)estl'objet

delaprogrammation.

Laprogrammationestlafaçond'indiqueràl'ordinateurlesalulsqu'ildoit

eetuer.

Laprogrammationpermet,entreautres,laoneptiondeslogiiels.D'unefaçonplusmodeste,

ellepermet deréerdesprogrammesdealulspourlesquelsiln'existe pasdelogiiels.

2.1.2 Façons de programmer

Surlespremiersordinateurs,laprogrammationonsistaitàreâbleràhaquefoisentre elles

un ertain nombre d'unités. Heureusement pour elui qui programme, le programmeur en

l'ourrene,lafaçon(physique)deprogrammeraévolué.

Suivant une idée de John von Neumann de la n des années 1940, le programme est

maintenantune donnée ommeles autres,entrée dans lamémoirevivede l'ordinateuromme

lesautresdonnées.

Ceprogrammepeutêtreéritenlangage mahine,quiestdiretementompréhensiblepar

leproesseur. L'inonvénientmajeur dulangagemahineest quele programmeurdoitfaireun

trèsgroseortdeodage.Onautiliséensuitedeslangagessymboliques,plusompréhensibles

parleprogrammeur,qu'ilfauttraduireenlangagemahineàunertainmoment.Ce futl'idée

d'AlanTuringaudébutdesannées1950.

Onapendantlongtempsdistinguerdeuxtypesdelangagessymboliques(denosjours,lahié-

rarhieestdevenuebeauoupplusne):leslangagesd'assemblage,trèsprohesdeslangages

mahinemaisutilisantdesmnémoniquestrèsutilespourleprogrammeur,etleslangagesévo-

luésplusprohesdelafaçonderaisonnerdesprogrammeurs,letraduteurdelangagefaisantle

travailpourserapproherdulangagemahine.

Les langages évoluéssontinterprétés ou ompilés. L'interprétation onsisteà traduire

ligneàligneleprogrammeau momentoùonlelane;leserreurs sontrepéréesrapidement,on

aune forme d'interativitéintéressante.Laompilation onsiste,dans une premièreétape, à

traduirele programmepuis, dansune seonde étape, àl'exéuter.On perdl'interativitémais

l'exéutionest plusrapide.

2.1.3 Les grandes étapes de la ompilation

De nos jours, on eetue la programmationde lafaçon suivante. On ommene par érire

un programme,dit plus exatementprogramme soure,grâe à unéditeur detexte, dans

unlangage partiulier,dit langage de programmation (auxrèglessyntaxiquestrès strites,

ontrairementauxlangues naturelles[ainsiappelésparlesinformatiiensparoppositionaux

langages deprogrammation℄ tels quele françaisoul'anglais). Cependante langage est quand

mêmesusammentprohedel'anglaisdebase(impérialismeanglo-saxonoblige!).

(3)

soureenquelquehosedeplusompréhensibleparl'ordinateur,quiestappeléprogrammeob-

jet.Leprogrammeurpeutonsidérerleprogrammeobjetommequelquehosedemagique,e

n'est passon problème. On en apprend plussur les programmes objetsdans le ours de Sys-

tèmed'exploitation,danslequelonvoitlaoneptionatuelle('est-à-direelled'aujourd'hui

qui n'est ni elle d'hier, ni ertainement elle de demain) des ordinateurs et la struture d'un

programmeobjet.

Ce programme objet se présente ommeun hier d'une nouvellesorte (parrapport ànos

hierstexte, maintenant bien onnus), dit hier binaire ('est en faitomme elaque l'on

appelletout hierqui n'estpasunhiertexte,'est-à-direquinedonneriendebien ompré-

hensiblelorsqu'ilestluaveunéditeurdetexte)maisquiest(plusoumoins)exéutable :son

appelsurlalignedeommande(dansleasd'uninterpréteurdeommandestextuel;pardouble

lisur sonine dans le asd'un interpréteurde ommandegraphique) délenhe l'exéution

deequi estdéritdansleprogramme(soure).

2.1.4 Diversité des langages de programmation

De même qu'il existe de nombreuses langues naturelles, il existe de nombreux langages de

programmation.Leslangagessediérenientlesuns desautres (outreleursrèglessyntaxiques,

biensûr)parlefaitqu'ilssontplusappropriéspourteloutelbut.

Le langage PASCAL, parexemple, aété onçu en 1971omme unlangaged'initiation àla

programmation et permettantd'exprimer simplement les divers algorithmes. Ce ours de pro-

grammationsera ependant illustréparunautre langage,le langage C pour deuxraisons :le

langage C est le plusutilisé dans les entreprises, mais ei est une mauvaise raison; la raison

prinipale est que si le ours de programmation struturéeserait bien illustré par PASCAL, il

n'en serapas demême duours de programmation orientée objet, pour lequellelangage C++

estdevenuelaréférene.LelangageC++utiliselelangageCommenoyau,nousavonsintérêt

àonnaîtrelelangageC.

2.1.5 Diversité des ompilateurs

Leompilateurdoittraduireunprogrammesoure,éritdansunlangagedeprogrammation

donné,enunlangageobjet.Ilyadonaumoinsunompilateurparlangagedeprogrammation.

Leprogrammeobjetdépenddusystèmeinformatiquesurlequelonsetrouve,essentiellementdu

miroproesseurmaisaussidusystèmed'exploitation.Iln'estdonpassusantdeherherun

ompilateurC,ilfautunompilateurCadaptéàteloutelsystèmeinformatique.Deplus,puisque

lesompilateurssontsouventdesprogiiels(logiielsonçuspardesentreprisesommerialeset

misàjourrégulièrement),ilexistesouventplusieursompilateurspourunlangagedonnésurun

(4)

2.2 Un premier exemple de programme C

Nousallonsérireunprogrammepermettantd'aher`Bonjour'surl'érandumoniteur.

Premièreétape:érireleprogrammesoure.-Leprogrammesoures'éritgrâeàunéditeurde

texte,n'importelequel.Érivonsdonleprogrammesuivant(survotreéditeurdetextepréféré):

#inlude <stdio.h>

void main(void)

{

printf("Bonjour");

}

Deuxièmeétape: sauvegarderleprogramme.- Une bonne habitude onsiste à sauvegarder les

programmes(soure)avantdepasseràlaompilation.Enregistronsdonleprogrammei-dessus,

parexemplesouslenomessai..

L'extension`'esttraditionnellepourlesprogrammessouredulangageC.

Troisièmeétape:laompilation.- La façonde faire dépend duompilateur utilisé. Nous y re-

viendrons plus loin lors de la desription de quelques ompilateurs. Si tout se passe bien,un

nouveauhiersetrouvedanslerépertoiredontlenomdépendduompilateur.

Quatrièmeétape:exéutionduprogramme.-Cenouveauhierestengénéralunexéutableet,

enlelançant,ondevraitvoirapparaître`Bonjour'àl'éran.

(5)

2.3 Quelques ompilateurs

LeompilateurderéférenealongtempsestleompilateurGNUg.

2.3.1 Le ompilateur GNU C sous Unix

Tout système d'exploitation Unix est livré ave un ompilateur C ar 'est le langage de

programmation système favori de Unix, d'ailleurs réé pour lui. Plus préisémentla première

versiond'Unixfutériteen1969enlangaged'assemblagedumini-ordinateurPDP7;lelangage

CfutonçuparDennisRithieàpeuprèsenmêmetempseten1973,DennisRithieet Ken

ThompsonontrééritlenoyauUnixenlangageC,equientlepremiersystèmed'exploitation

ànepasêtreéritenlangaged'assemblage.

2.3.1.1 Installation

Nous n'expliquerons pasii omment installerle ompilateur Csous Unix puisque,pourla

raisonque nousvenonsd'indiquer,il s'installeenmême tempsquelesystèmed'exploitation (à

de rares exeptions près, à savoirlorsqu'on ne veut vraiment ni programmer, ni ompiler des

logiielsdistribuéssouslaformedehiersoure,e quin'estpasnotreas).

L'installation d'Unix peut être une opération déliate. Nous supposerons ii que Linux est

installésur unompatible PC.

2.3.1.2 Premierexemple

Voyonsommentmettreenplaenotrepremierexemplepermettantd'aher`Bonjour'.

Premièreétape:érireetsauvegarderleprogramme.- Le programme s'érit ave votreéditeur

detextefavorisousUnix.Parexempleaveemas,onlanel'éditeur,àpartirdurépertoiresur

lequelonveutsauvegarderleprogramme,enérivant(ensupposantqueleprompteursoit $):

$ emas bonjour. &

Érivonsalorsletextevui-dessusdanslafenêtrequiapparaît,sauvegardons(grâeaumenu

déroulant)etquittons(grâeaumenudéroulantouenfaisantCTRL-X CTRL-C,lafaçondequitter

emas).

Deuxièmeétape:laompilation.-Pourompilere programme, toujoursàpartirdumême ré-

pertoire,onérit:

$ bonjour.

ou:

$ g bonjour.

ommeonveut.

La ommande orrespond àCompilateur C (enfait àC Compiler), laommande g à

Gnu.

Ilexistealorsunnouveauhierdanslerépertoire,appelé a.out(pourAssembler Output).

Troisièmeétape:exéutionduprogramme.-Pourexéuterleprogrammeilsut defaireappel

àlui,enérivantsurlalignedeommande:

(6)

puis en appuyant sur la touhe

hh

retour

ii

. Normalement on doit voir apparaître e que le programmeestenséfaire,'est-à-direqu'apparaît:

Bonjour$

Remarquonsqu'iln'yapasdepassageàlaligneaprèsahagedurésultat.

Quatrièmeétape:donnerunnomauprogramme.-Celapeutêtregênantd'avoirtoujourslemê-

menompourl'exéutable,surtoutsionveutenutiliserdeux.Sionveutquel'exéutables'appelle

Bonjour,parexemple,onompiledelafaçonsuivante:

$ -o Bonjour bonjour.

enutilisantleparamètre`-o'(pour`output').

(7)

2.3.2 Le ompilateur de MinGW sous Windows

MinGW, ontrationdel'anglais

hh

Minimalist Gnufor Windows

ii

, est unenvironnement

dedéveloppementminimalisted'appliations(oulogiiels)pourMirosoftWindows.

2.3.2.1 Installation

RéupérationsurInternet.-Leompilateur MinGWsetrouvesurlesite:

http://www.mingw.org

Cliquer dans le menu de navigation à gauhe de la page d'aueil sur

hh

downloads

ii

pour se retrouversurlapage:

https://soureforge.net/projets/mingw/files/

puisliquer sur

hh

Downloadmingw-get-setup.exe(86.5kB)

ii

qu'il faut enregistrerdans leré- pertoirequevousvoulez.

Exéution.-Faitesexéuterlehierréupéré.

Notezbienl'emplaementdanslequelleompilateurestplaé,emplaementproposéouelui

quevousluiindiquez,parexempledans:

hh

:

\

programmes

\

mingw

\ ii

Modiationdelavariabled'environnementPATH .- L'exéution préédente fait presque tout

automatiquement,mais n'indique pasausystème d'exploitation l'emplaement duompilateur

g,alorsquenousavonsbesoin.

Vérions-le!Ouvonsl'invitedeommandes:sousWindows8,parexemple,liquersur

hh

Re- herher

ii

surlebandeaudedroite(quiapparaîteneetuantunlégermouvementdedroite à gauhesur lebord droitdel'éran tatile); érire

hh

ommande

ii

dans la fenêtre dereherhe (

hh

appliation

ii

est par défaut, sinon il faut liquer dessus);

hh

invite de ommandes

ii

est

proposé;liquerdessus;unenouvellefenêtre (voirgurei-dessous)apparaît.

(8)

Érire `g'puisappuyersurlatouhe

hh

entrée

ii

.Laréponse est:

hh

'g' n'est pas reonnu en tant que ommande interne ou externe, un program-

me exéutable ou un fihier de ommandes.

ii

Pourremédier àela, faisonsapparaîtrel'explorateur dehiers. Un liave lebouton de

droite de la souris sur

hh

Ordinateur

ii

fait apparaîtreun menu déroulant. Double-liquer sur

hh

Propriétés

ii

.Surlafenêtrequisurgit,liquersur

hh

Paramètressystèmeavanés

ii

(Attention!

il faut détenir les droits de superutilisateur). Sur la nouvelle fenêtre, liquer sur

hh

Variables

d'environnement

ii

.Surlafenêtresuivante,liquersur

hh

Path

ii

de

hh

Variablessystème

ii

puis

sur

hh

Modier

ii

.Enfaisanttrèsattention(en'estpastrèslisible,d'unepart,et,d'autrepart,

si on détruitune partie de e qui est déjà érit, d'autresappliations ne fontionnerontplus),

ajoutonsàlan unpoint-virgule et lehemin onduisantausous-répertoire`bin' de MinGW,

soitdansl'exemplevui-dessus:

hh

;:

\

programmes

\

mingw

\

bin

ii

Cliquersur`OK',enoresur`OK'pourlanouvellefenêtre,puisunetroisièmefois.

Sitoutestorret,surunenouvelleinstanedel'invitedeommandes(Attention!l'anienne

neprendpasenomptelanouvelleversiondesvariablesd'environnement),`g'devraitdonner

lieuàlaréponsesuivante`g: fatal error: not input files. Compilation terminated'.

Si en'estpasleas,ilfautreommenerenherhantlàoùons'estfourvoyé.

2.3.2.2 Premierexemple

Reprendre e qui est dit à proposdu ompilateur gsous Linux, à partque l'on utilisera

éventuellementunautreéditeurdetexte(blo-notesdeWindows,parexemple).SousWindows,

onseplaeradansunefenêtredelignedeommandes,évidemment.

(9)

2.3.3 Le ompilateur sous MaOS

2.3.3.1 Le terminal

L'analogue de l'invite de ommande de Windows s'appelle

hh

Terminal

ii

sous le système d'exploitationMaOSd'Apple.Beauoupd'utilisateursnel'utilisentjamais.

La premièrefois qu'on veutl'utiliser, il faut aller herherette appliationdans le dossier

hh

/Appliations/Utilitaires

ii

.Mettezsonine dansle

hh

Dok

ii

pourl'avoirtoujoursàportée

desourisdanslasuite.Lanez-leenliquantsurl'ine.

2.3.3.2 Installationdu ompilateur g

Tapez

hh

g

ii

ou

hh ii

dansleterminalpuissurlatouheretour.Deuxsituations peuvent seproduire:

Premieras:leompilateurestdéjàinstallé.- Dans e as on voit une phraseanalogueau as

deWindows.

Deuxièmeas:leompilateurn'estpasenoreinstallé.-Dans e asunmessages'ahe,indi-

quantqu'ilfautinstallerl'appliation(gratuite)

hh

Xode

ii

. Ilfautdonallertéléharger

hh

Xode

ii

sur

hh

MaAppStore

ii

2.3.3.3 Utilisationde l'éditeurde texteTextEdit

L'analogued'àlafoisl'éditeurdetexte

hh

Blo-Note

ii

etdutraitementdetexte

hh

Wordpad

ii

deWindowss'appelle,sousMaOS,

hh

TextEdit

ii

, quivientaveMaOSX.

Pardéfaut, ilvapluttseomporterommeuntraitementdetexte,àla

hh

WordPad

ii

.

Pourl'utiliserommeéditeurdetexte,hoisirdanslemenu

hh

Format

>

Make Plain Text

ii

(ouutiliserleraourilavier`Command+Shift+T').

On peut aussi déider de e mode éditeur de texte omme mode par défaut à haque fois

qu'onlaneetteappliation:dans

hh

Preferenes

ii

,sousFormat,hoisirPlain Text.

Références

Documents relatifs

L’ASPM sera sélectionné(e) selon la procédure de recrutement d’un consultant individuel (CI) en accord avec les procédures définies dans le « Règlement de

Registres ahés.- Un registre est un élément mémoire inlus dans le miroproesseur..

Langage mahine.- L'instrution en langage symbolique n'est là que pour nous aider à s'en

Nous avons vu, pour l'instant, omment le miroproesseur a aès aux registres et à la mé-..

Langage mahine.- Uun sous-programme peut se trouver dans le même segment que le programme. qui l'appelle : la valeur du registre IP est alors hangée mais il est inutile de

de la routine de servie de l'interruption se trouve à l'adresse 4 × n pour le type n : les deux otets de IP se trouvent à l'adresse 4 × n et les deux otets de CS à l'adresse 4 × n +

Pour une valeur se trouvant à l'adresse (de mémoire vive) désignée par le ontenu d'uno. registre (de seize bits, puisque 'est la taille du déplaement), on indique le nom de

Cei doit être eetué à partir d'une page pour laquelle les adresses virtuelles sont. égales aux adresses physiques ( hh identity mapped ii