0% ont trouvé ce document utile (0 vote)
67 vues35 pages

Langages de Programmation: Histoire et Syntaxe

Différents langages informatiques, première approche pour néophytes.

Transféré par

brd2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues35 pages

Langages de Programmation: Histoire et Syntaxe

Différents langages informatiques, première approche pour néophytes.

Transféré par

brd2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Matériel et logiciel

Les premiers ordinateurs étaient câblés pour


réaliser les tâches qui leur étaient dévolues.

Les ordinateurs actuels ainsi que tous les


matériels exécutent des programmes.

Ces programmes sont développés en utilisant


des langages informatiques.
717 langages (merci Wikipédia)
A+ - A++ - A-0 System - A# - ABAL - ABAL++ - ABAP - ABC - ABCL/1 - ABCL/c+ - ABCL/R - ABCL/R2 - Abel - ABSET - ABSYS - Abundance - Accent - ACC - Ace DASL - ActForex - ACT-III - Ada -
Adenine - Afnix - Agora - Aikido - AIS Balise - Alef - Algebraic - Algol 60 - Algol 68 - Algol W - ALI - Alice - Ambi - Amiga E - AML - AMOS - AMPLE - A# .NET - Anubis - APDL - APL - AppleScript -
Arc - Ariberion - Arobase - ASP.NET - Assembleur - ATS - AUPL - AutoHotkey - AutoIt - Averest - awk - axe parser - Axum - B - Bash - BASIC - BASICA - Batch file - bc - BCPL - BeanShell -
Befunge - Bennu - Bertrand - BETA - Bigwig - Bistro - BitC - BLISS - BlitzBasic - BlitzBasic - Blue - Blueprint - Bon - Boo - Boomerang - Bosque - Bourne shell - BPEL - Brainfuck - BUGSYS -
BuildProfessional - C - C-- - C# - C++ - Caché ObjectScript - C/AL - Cameleon - Caml - Cat - CA-Telon - Cayenne - Cecil - Cel - Cesil - Ceylon - CFML - Cg - CHAIN - Chapel - Charity - Chef -
CHILL - Ch interpreter - CHIP-8 - chomski - CHR - Chrome - ChucK - CICODE - CIL - Cilk - CL - Claire - Clarion - Clean - Clipper - CLIST - Clojure - CLU - CMS-2 - CMS EXEC - COBOL -
CobolScript - Cobra - CODE - CoffeeScript - Cola - ColdC - ColdFusion - COMAL - COMIT - Common Lisp - COMPASS - Component Pascal - Converge - Cool - Coq - Coral 66 - Corn - CorVision -
Cosmos-f - COWSEL - CpcdosC+ - CPL - Crystal - C shell - Csound - CSP - CSS - CSS 3 - Cubescript - Curl - Curry - Cyclone - D - DaKeoZ - Dao - DarkBasic - DarkBASIC - Dart - DASL1 -
DASL2 - DataFlex - Datalog - dBase - dc - DCL - Deesel - Delphi - Dialect - Dialog Manager - DIBOL - DinkC - Down - Duke C - Dylan - Dynace - E - Ease - EASY - Easytrieve Classic - Easytrieve
Plus - eC - ECMAScript - eDeveloper - Edinburgh IMP - EGL - Eiffel - Einstein - Elan - elastiC - Elf - Emacs Lisp - Englesi - Epigram - Erlang - Escapade - Escher - Esterel - Etoys - Euclid - Euler -
Euphoria - EXEC 2 - Extends - F - F# - Factor - Falcon - False - Fan - Fancy - Fantom - FAUST - Felix - Ferite - FFP - Fjölnir - FL - Flavors - FLOW-MATIC - Fly - FOCAL - FOCUS - FOIL -
FORMAC - @Formula - Forth - Fortran - Fortress - FoxPro 2 - FP - Franz Lisp - FreeBasic - Frink - F-Script - FSProg - Funnel - Fuxi - Gambas - GAMS - GAP - GAP - G-code - GDL - GFA BASIC
- Gibiane - GJ - GLSL - GM - GML - Go - Go! - GOAL - Gödel - Godiva - Goo - GOTO++ - GOTRAN - GPSS - Grammer - GraphTalk - GRASS - Green - Groovy - GW-Basic - Hack - HAL/S -
Haskell - Haxe - High Level Assembly - HLSL - Hop - Hope - Hugo - Hume - HyperTalk - IBM Basic Assembly - IBM Informix-4GL - IBM RPG - ICI - Icon - Id - IDL - IL 2 - IMP - Inform - INTERCAL -
Io - Ioke - IPL - IPTSCRAE - ISWIM - J - J# - Jackson - JADE - Jako - JAL - Janus - JASS - Java - JavaScript - JEAN - Join Java - JOSS - Joule - JOVIAL - Joy - JSP - Julia - Kafe - Kaleidoscope -
Karel - Karel++ - Kaya - KEE - Kiev - KIF - Kite - Kogut - Korn shell - Kotlin - KRC - KRYPTON - KUKA - L - LabVIEW - Ladder - Lagoona - LANSA - LARP - Lasso - Lava - Leadwerks Script - Leda
- [leekwars] - Legoscript - Lexico - Limbo - Limnor - LINC - Lingo - Linoleum - Linotte - LIS - LISA - Lisaac - Lisp - Lithe - Little b - L# .NET - Logo - LOLCODE - LPC - LSE - LSL - Lua - Lucid - Lush
- Lustre - LYaPAS - Lynx - LZX - M - M4 - MAD - Magik - Magma - Malbolge - MapBasic - Maple - MAPPER 3 - MARK-IV 4 - Mary - Mathematica - MATLAB - Maxima - MaxScript - Maya - MDL -
Mercury - Mesa - MetaL - MicroAlg - Microcode - Micro Lua DS - MicroScript - Microsoft Macro Assembler - Microsoft Small Basic - MIIS - MillScript - MIMIC - min - Mindscript - Miranda - mIRC -
MisterDev - Miva Script - ML - Moby - Model 204 - Modula - Modula-2 - Modula-3 - Mondrian - MOO - Mortran - Moto - Mouse - MPD - MPP - MSIL - MSL - MSX BASIC - MUMPS - Mythryl - N -
Napier88 - NATURAL - NBC - NEAT chipset - Neko - Nemerle - Neonitisme - NESL - Net.Data - NetLogo - NewLISP - NEWP - NewtonScript - NGL - Nial - Nice - Nickle - Nil - Nit - Node.js - NPL -
NQC - Nu - NXC - NXT-G - Nyquist - Oak - Oberon - Objective-C - Objective-J - Object Lisp - ObjectLOGO - Obliq - Obol - occam - occam-p - OmniMark - Onyx - ooc - Opa - Opal - OpenEdge ABL
- OPL - OPS5 - ORCA/Modula-2 - Ork - Orwell - o:XML - Oxygene - Oz - Panoramic - PARI/GP - Pascal - Pascal Objet - Pawn - PCASTL - PCF - PEARL - Perl - Pharo - PHP - Phrogram 7 - Pi-
calcul - Pico - Pict - Piet - Pike - PIKT - PILOT - Pizza - PL/0 - PL-11 - PL360 - PLANC - Plankalkül - PL/B - PL/C - PLEX - PLEXIL - PL/I - Pliant - PL/M - PL/P - PL/SQL - POP-11 - Poplog -
PortablE - Portal - PostScript - PowerBasic - PowerBuilder - Powerhouse - PowerShell - PPL - Processing - Prograph - PROIV - Prolog - Promela - PROTEL - Proteus - ProvideX - Pure -
PureBasic - PureBasic - Python - Q - QBasic - Q# - Qi - QML - QPL - QtScript - QuakeC - QuickBasic - R - R++ - Rapira - Ratfiv - Ratfor - RBScript - rc - Rebol - Red - Redcode - REFAL - Reia -
Revolution - REXX - Rlab - ROOP - RPG - RPL - RSL - Ruby - Rust - S - S2 - S3 - SAC - SA-C - Safe C - SAIL - SALSA - SAM76 - SAS - SASL - Sather - Sawzall - SBL - Scala - Scheme - Scilab -
Scol - Scratch - Script.NET - Sed - Seed7 - Self - SETL - Shakespeare - Shift Script - Signal - SiMPLE - SIMPOL - SIMSCRIPT - Simula - SISAL - S-Lang - Slate - SLIP - SMALL - SmallBasic -
Smalltalk - SML - Snap! - SNOBOL - Snow - Snowball - SNUSP - SOL - Span - SPARK - Spice - SPIN - SPITBOL - SP/k - SPS - Squeak - Squirrel - SR - SSL - STOS BASIC - Strand - Subtext -
Suneido - SuperCollider - Swift - SYMPL - SyncCharts - SystemVerilog - T - TACL - TACPOL - TADS - TAL - Tcl 8 - Tea - TECO - TELCOMP - TenCORE - Terra - TeX 9 - TEX - Thue - TI-Basic - TI-
Basic - Ticol - TIE - TI-Extended Basic - Tiger - Timber - Tom - TOM - Topspeed - TPU - Trac - Transact-SQL - True Basic - TTCN - Turbo Basic - Turbo Pascal - Turing - TUTOR - TXL - TypeScript -
Ubercode - Unicon - Uniface - uniPaaS - UNITY - unityscript - Unix shell - Unlambda - UnrealScript - USE 10 - Vala - VBA - VBScript - Verilog - VHDL - Visual Adélia - Visual Basic - Visual
Basic .NET - Visual Basic - Visual DataFlex - Visual DialogScript - Visual FoxPro - Visual Objects - Vvvv - Water - WATFIV, WATFOR - WebQL - Whitespace - Winbatch - Windows PowerShell -
WLangage - wxBasic - X# - X++ - X10 - XBL - xHarbour - XL - XNA - XOTcl - XPL - XPL0 - XQuery - XSLT - Y - YaBasic - YACC - YAL - Yoix - Yorick - Zeno - Z notation - Zonnon - ZOPL - ZPL -
ZScript - ZZT-oop
Quelques langages
Le langage machine : assembleur

Les ancêtres : COBOL (informatique de gestion), FORTRAN (calcul scientifique)

L’un des plus simples BASIC (mais pas standard)

Le premier langage réellement structuré : PASCAL

Le plus efficace, performant, à la base de tout ce qui est puissant : C et C++

Gestion du système, utilitaires : PERL, PYTHON, LUA

Pour les sites Web : PHP, JAVA, JAVASCRIPT

Quelques ancêtres FORTH, LISP, ADA, GAP

Orientés « utilisateur amateur et éducation » : LOGO, SCRATCH, BLOCKY

Dans le monde Windows : C# VisualBasic


Ce ne sont pas des langages
Les « faux-amis » :

HTML, XML, CSS

Ils utilisent une syntaxe mais ne disposent pas des attributs essentiels des langages
(définition des données, condition, boucle...)

Les cas particuliers :

EXCEL et CALC
→ ils utilisent un langage simpliste dans un environnement événementiel
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Les variables
Une variable est un nom attribué à une mémoire :

nom_du_client ou nomDuClient
Pas d’accent

indice style « snake » ou « camel »
compromis entre lisibilité et facilité d’écriture

total_general ou totalGeneral

w
On lui associe également un type de données.

nombre entier : 0 127 32767 2 147 483 647

nombre à virgule : 1,55 85,0002 124,0

caractère : ‘A’ ‘h’ ‘1’ ‘ :’

chaîne de caractères : « Hello world ! » « 127 »
Les variables
Il y a quelques limitations :

pas de nombre fractionnaire : 2/3 mais aussi 3/4 ou 1/2

pas d’irrationnel (π, φ, e, ∞)

précision limitée pour les nombres à virgule

valeurs limitées pour les grands nombres

certains types de données ne sont pas manipulables
facilement :
– dates : 2019-07-11 ou 1562400550
Les tableaux de variables
Jours du mois :
double temperature[31] ;
1 2 3 4 5 6 7 ...
17,5 19,0 18,7 22,3

1,1 1,2 1,3 1,4


Matrice à plusieurs dimensions : 2,1 2,2 2,3 2,4

int coef[100][10] ; 3,1 3,2 3,3 3,4

int planning[12][31][24] ; 4,1 4,2 4,3 4,4


Les structures
Une structure permet d’assembler plusieurs variables pour former
un objet plus complexe.

struct NOMBRE_COMPLEXE { struct FRACTIONNAIRE {


double reel; int numerateur;
double imaginaire; int denominateur;
}; };
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Les opérations
affectation :
A=B;
opérations arithmétiques : + - * /

Participants= hommes + femmes ;

montant = prix * quantité ;


autres opérations :
racine_de_2 = sqrt(2) ;
chaîne de caractères :

debut = substring(« Bonjour le monde », 1, 7) ;

nom_complet = nom + « » + prenom ;


Les instructions évoluées
Manipulation des données selon leur type :
Chaînes de caractères
Date, heure, durée, …
Tableaux
Calculs
Les instructions évoluées
Manipulation des Manipulation de base de
fichiers données
Les instructions évoluées
Instructions qui n’existaient pas dans les « anciens »
langages informatiques :

Échange de données par le réseau

Environnement graphique
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Instructions conditionnelles
if (condition_à_évaluer) { if (nombre >= 0) {
instructions racine= sqrt(nombre) ;
si la condition print(« Racine : » . string(nombre)) ;
est vraie } else {
} else { print(« Le nombre est négatif ! ») ;
instructions exit(0) ;
si la condition }
est fausse Suite des instructions...
}
Suite des instructions...

La condition est de la forme :

poire < 10

(poire < pomme) or (pomme > 100)


Instructions conditionnelles
int etatAvion ;

switch(etatAvion) {
case 0 : print(« Avion au sol ») ;
case 1 : print(« Embarquement des passagers ») ;
case 2 : print(« En cours de décollage ») ;
case 3 : print(« Avion en vol ») ;
case 7 : print(« Retard ») ;
case 4 : print(« Avion annoncé ») ;
case 5 : print(« Atterrissage en cours ») ;
case 6 : print(« Débarquement des passagers ») ;
default: print(« Avion perdu, désolé ») ;
}
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
instructions de répétition
while (condition) {
...
instructions à répéter
tant que la condition est vraie
...
}
instructions de répétition
while, until, …
for (itérateur)
for each (collection)
Exemple
int nombre ;

nombre= input(« Saisir un nombre de départ : ») ;

if (nombre > 0) {
while (nombre > 1) {
print(nombre) ;
// selon la parité
if ( (nombre%2) == 1 ) {
// le nombre est impair
nombre*= 3 ;
nombre= nombre * 3 + 1 ; nombre++ ;
} else {
// le nombre est pair
nombre= nombre / 2 ;
}
nombre/= 2 ;
}
} else {
print(« Le nombre doit être strictement positif ») ;
}
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Les fonctions
Les fonctions permettent d’étendre le langage en
créant de nouvelles instructions.
function carre(int cote) { carre(100) ;
for (i=0 ; i<4 ; i++) { carre(80) ;
avancer(cote) ;
tourner(90) ;
}
}
récursivité
function int factorielle(int n) { function int factorielle(int n) {
int prod= 1 ; if (n > 1) {
while (n > 1) { return factorielle(n-1) * n ;
prod= prod * n ; }
n= n – 1 ; return 1;
} }
return prod ;
}

n ! = n * (n-1) * (n-2)… 2 * 1 n ! = n * (n-1) !


récursivité
récursivité
Syntaxe des langages
Les opérations de base
Les variables : mémorisation des données
les instructions évoluées ou spécialisées

les instructions conditionnelles les instructions répétitives

l’organisation :
simple,
les fonctions objet,
événementielle...
Les algorithmes
Un algorithme est une suite finie et Début

non ambiguë d’opérations ou


d'instructions permettant de
résoudre une classe de problèmes
N>1

(merci wikipedia!) N est impair

Le programme possède un début et


une fin. N=N*2 N=3*N+1

Fin
Les modes d’exécution
Click souris Actions spécifiques à déclencher
quand le bouton est actionné.

zone modifiée Actions spécifiques à déclencher


quand une zone est modifiée.
Le jeu du pendu

- - E - - T - - E

ASD
les erreurs
syntaxe : la grammaire du langage n’a pas été respectée,
aucune exécution n’est possible.
Il faut corriger la faute de grammaire.
exécution : le programme s’exécute mais provoque une erreur du
calculateur.
division par zéro, accès au 20ème caractère d’une chaîne qui n’en
contient que 10, ...
logique (algorithme) : le programme est techniquement correct, c’est sa logique qui
est fausse (erreur d’analyse).
Par exemple : si la conjecture de Syracuse est fausse, le programme pourrait ne
jamais se terminer.
le débogage
Historique :
Un insecte (bug en anglais)
s’est glissé dans les circuits
électriques et a provoqué un
court-circuit.
Quel langage choisir
C’est clair : Ça dépend !
VisualBasic : Windows, environnement lourd,
graphisme compliqué.
JavaScript : intégré dans un navigateur, limité par
les contraintes de sécurité.
Python : l’un des plus populaire, quelques
contraintes dans le style d’écriture.
Perl : puissant mais déroutant parfois.
Conclusion
Plus de 700 langages, chacun utilisant :
définition des données, instructions de base,
conditions, répétitions, fonctions
dans un environnement d’exécution
la seule limite : votre imagination !
Amusez-vous : créez vos propres programmes !

Vous aimerez peut-être aussi