1 / 65

LE LANGAGE PASCAL

LE LANGAGE PASCAL. OBJECTIFS. PASCAL. INTRODUCTION HISTORIQUE DOMAINE D'APPLICATION AVANTAGES / DESAVANTAGES DEFINITION DU LANGAGE LES MOTS DU LANGAGE LES TYPES ET LES DONNEES LES INSTRUCTIONS MODULARITE TURBO PASCAL CONSEILS CONCLUSION. HISTORIQUE. 1968 CREATION PAR WIRTH

webb
Télécharger la présentation

LE LANGAGE PASCAL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LE LANGAGE PASCAL .

  2. OBJECTIFS • .

  3. PASCAL • INTRODUCTION • HISTORIQUE • DOMAINE D'APPLICATION • AVANTAGES / DESAVANTAGES • DEFINITION DU LANGAGE • LES MOTS DU LANGAGE • LES TYPES ET LES DONNEES • LES INSTRUCTIONS • MODULARITE • TURBO PASCAL • CONSEILS • CONCLUSION

  4. HISTORIQUE • 1968 CREATION PAR WIRTH • 1970 PREMIER COMPILATEUR VERSION ZURICH • BUT : ENSEIGNEMENT • 1975 DEBUT DE NORMALISATION • UTILISATION CROISSANTE DANS L'INDUSTRIE • 1976 VERSION UCSD P-CODE • 1981 SECOND DRAFT ISO, NORMALISE BSI • 198X POPULARISATION DANS L'INDUSTRIE VIA TURBO-PASCAL • 1985 UTILISATION DECROISSANTE DANS L'INDUSTRIE • MAINTIENT DE LA COMPETITIVITE DE TURBO-PASCAL PAR DES EXTENSIONS OBJETS

  5. LES ENFANTS DE PASCAL • MODULA II • SUCCESSEUR CREE PAR WIRTH • MODULAIRE • UN CERTAIN SUCCES EN GB • ADA 83 • CREE POUR LE DoD • MODULAIRE • GRANDES EXTENSIONS

  6. DOMAINES D'APPLICATION • ENSEIGNEMENT • BUT INITIAL • ADA PREFERE DANS L'ENSEIGNEMENT • PROGRAMMATION NON PROFESSIONNELLE • SUR PC

  7. PASCAL • QUALITES : • LISIBILITE • ENCOURAGE LES BONNE PRATIQUES • BON NIVEAU DE VERIFICATION • DEFAUTS • PAS NORMALISE OU TROP TARD • PORTABILITE • INSUFFISANCES • EN DECLIN

  8. PASCAL • ZURICH VERSION DE BASE • X: UCSD EXTENSIONS CLASSIQUE • TP: EXTENSIONS TURBO PASCAL • B.S.O. • CROISE UTILISE A LA SFIM • PEU PERFORMANT ET MODULAIRE • OREGON • CROISE UTILISE A LA SFIM • PERFORMANT ET MODULAIRE

  9. UNITES LEXICALES • ENTIER • 123, -123 • REEL • 123.2, 123E-10 • CARACTERE / CHAINE DE CARACTERES • 'C''est une chaine' • IDENTIFICATEURS • NOTATION_SFIM • NotationBorland • COMMENTAIRES • { commentaire } • (* commentaire *} • ;

  10. IDENTIFICATEURS • 1er CARACTERE = A..Z • TP: '_' • ensuite : A..Z, 0..9, '_' • MAJUSCULE = MINUSCULE • MOT RESERVE OU IDENTIFICATEUR • TRONQUE A N CARACTERES

  11. STRUCTURE D'UN PROGRAMME PASCAL • PROGRAM NOM_DU PROGRAMME • CONST • DECLARATION DES CONSTANTES • TYPE • DECLARATION DES TYPES • VAR • DECLARATION DES VARIABLES • PROCEDURE|FUNCTION • DECLARATION D'UN SOUS-PROGRAMME • BEGIN • SUITE D'INSTRUCTION • END.

  12. DECLARATIONS • NOM_CONSTANTE = VALEUR; • TP: NOM_CONSTANTE = EXPRESSION • TP: NOM_CONSTANTE : TYPE = (...,...,); • NOM_TYPE = DECLARATION_DE_TYPE; • NOM_VARIABLE : NOM_TYPE;

  13. TYPES • SIMPLES • SCALAIRES • BOOLEEN • ENTIERS • ENUMERATIONS • CARACTERE • REELS • COMPOSES • TABLEAUX • ENREGISTREMENT • ENSEMBLE • POINTEURS • FICHIER

  14. OPERATEURS SUR VARIABLES DE TOUS TYPES • AFFECTATION A := B; • COMPARAISON = < <= >= > <> • TP : @

  15. TYPES ENTIERS • INTEGER • -MAXINT..+MAXINT • TP : INTEGER -32768..32767 • SHORTINT -128..127 • LONGINT -214483648..2147483647 • BYTE 0..255 • WORD 0..65535 • + - * DIV MOD ODD ABS SQR • TP : NOT AND OR XOR SHL SHR

  16. TYPE CARACTERE • CHAR • CHR(NOMBRE) TYPE CHAR • ORD(caractere) • TP : +

  17. TYPES BOOLEENS • BOOLEAN • (false, true) • TP : BOOLEAN = BYTEBOOL • WORDBOOL, LONGBOOL • AND NOT OR • TP : XOR

  18. AUTRES TYPES SCALAIRES • INTERVALLES • MIN..MAX • ENUMERATION • COULEUR = (BLEU, BLANC, ROUGE) • VALEURS NON IMPOSEES ( 0,1,2,3...) • BLANC..ROUGE SOUS-INTERVALLES

  19. OPERATEURS SUR TYPES SCALAIRES • SUCC(VARIABLE) • PRED(VARIABLE) • ORD(VARIABLE)

  20. TYPE REEL • REAL (6) • TP : SINGLE (4), DOUBLE(8), EXTENDED(10), COMP(8) • OPERATEURS • +-*/ • SQR, SQRT • SIN, COS, TAN • EXP, LN • TRUNC, ROUND

  21. TP : CHAINES • STRING[N] • ARRAY[0..N] OF CHAR; • TAILLE DYNAMIQUE • + • LENGTH

  22. TABLEAUX • [PACKED]ARRAY[DEBUT..FIN,DEBUT..FIN,...] OF TYPE_ELEMENT; • TYPE MATRICE = ARRAY[-5..4, 1..10] OF REAL; • VAR M1,M2 : MATRICE; • M1 := M2 • M1[4] := M2[2] • M1[4,2] := M2[2,2]

  23. SET OF • TYPE ENSEMBLE = SET OF COULEUR • VAR E1,E2,E3 : ENSEMBLE; • E1 := [BLEU, BLANC] • E1 := E2+E3 • E1 := E2-E3 • E1 := E2*E3 • OK := BLEU IN E1 TYPE

  24. RECORD • TYPE • PERSONNE = RECORD • NOM : STRING[10]; • AGE : INTEGER; • END; • VAR • LEON : PERSONNE; • LEON.NOM := 'LEON'; nom age

  25. WITH • TYPE • PERSONNE = RECORD • NOM : STRING[10]; • AGE : INTEGER; • END; • VAR • LEON : PERSONNE; • WITH LEON DO • BEGIN • NOM := 'LEON'; • AGE :=10; • END;

  26. VARIANT RECORD • TYPE • PERSONNE = RECORD • NOM : STRING[10]; • AGE : INTEGER; • CASE CITOYEN : BOOLEAN OF • TRUE : (LIEU_NAISS : STRING[40]); • FALSE:(PAYS : STRING[20]; • LIEU_ARRIVEE : STRING[20]; • DATE_ARRIVEE : TDATE); • END;

  27. VARIANT RECORD NOM AGE CITOYEN LIEU_NAISS PAYS LIEU_ARRIVEE DATE_ARRIVEE

  28. FILE • FILE OF PERSONNE • HOMOGENE • FORMAT BINAIRE • TEXT • FILE OF CHAR • HETEROGENE • FORMAT AFFICHABLE

  29. ENTREES/SORTIES TOUS FICHIERS • RESET(F:FILE); • REWRITE(F:FILE); • PUT(F:FILE OF ELEMENT ,X:ELEMENT); • FUNCTION GET(F:FILE OF ELEMENT):ELEMENT; • EOF(F:FILE);

  30. ENTREES/SORTIES TEXT • READ(F, A, B, C); • READLN(F, A, B, C); • WRITE(F, A:LN, B:LN:DIGIT, C); • WRITELN(F, A, B, C); • EOLN(F);

  31. LIEN LIEN LIEN LIEN POINTEUR ZONE DYNAMIQUE • TYPE TLIEN = ^OBJET; • VAR LIEN : TLIEN; • NEW(LIEN); • LIEN^=4 • DISPOSE(LIEN); • MARK • RELEASE NIL 4 NIL

  32. TYPE ANONYME • VAR • LEON : RECORD • NOM : STRING[10]; • AGE : INTEGER; • END; • LEON.NOM := 'LEON';

  33. TYPAGE FORT • TYPE • X = INTEGER; • Y = INTEGER; • VAR • A:X; • B:Y; • BEGIN • A :=B; • A := X(B); { EN TURBO PASCAL SEULEMENT } • END.

  34. BLOC • BEGIN • END

  35. TANT QUE • WHILE CONDITION DO • ACTION;

  36. REPETER • REPEAT • ACTION • UNTIL CONDITION;

  37. BOUCLE • FOR INDICE := DEBUT TO FIN DO • ACTION(INDICE); • FOR INDICE:=FIN DOWNTO DEBUT DO • ACTION(INDICE);

  38. CONDITION • IF CONDITION THEN • ACTION; • IF CONDITION THEN • ACTION • ELSE • AUTRE_ACTION; PAS DE ';'

  39. CONDITION { commentaire sur l'instruction complète } IF ( i = 2 )THEN BEGIN { commentaire sur la branche } action2; END ELSE IF ( j = 3 )THEN BEGIN { commentaire sur l'autre branche } action; END.

  40. AIGUILLAGE case valeur_testee of cas_1 : traitement_1; cas_2, cas_3 : traitement_2; . . . cas_n : traitement_n; else traitement_autres_cas; END TP

  41. GOTO LABEL • PROCEDURE X; • LABEL 10,20; { IDENT AUTORISE EN TURBO PASCAL} • BEGIN • 10: • ......... • GOTO 10 • END;

  42. PROCEDURE PROGRAM DEMO; VAR A,B : INTEGER; PROCEDURE SUB( X : INTEGER; { EN ENTREE } VAR Y: INTEGER) { EN SORTIE } BEGIN Y:=X; X:=2; END; BEGIN SUB(A,B); END;

  43. FONCTION PROGRAM DEMO; VAR A,B : INTEGER; FUNCTION FNC( X : INTEGER { EN ENTREE } ):INTEGER; { EN SORTIE } BEGIN FNC := X; END; BEGIN A := FNC(B); END;

  44. FORWARD PROCEDURE A(X:INTEGER); FORWARD; PROCEDURE B; BEGIN A(4); END; PROCEDURE A; BEGIN B; END;

  45. EXTERNAL • TP: APPEL AUTRES LANGAGES PROCEDURE A(X:INTEGER); EXTERNAL;

  46. PROCEDURE EN PARAMETRE PROCEDURE DERIVER(FUNCTION FNC(X:REAL):REAL; BEGIN .... END; FUNCTION F1(Y:REAL):REAL; BEGIN END; BEGIN DERIVER(F1); END;

  47. TABLEAUX VARIABLES EN PARAMETRE • FUNCTION ADD(TAB :ARRAY[MIN..MAX:INTEGER]OF INTEGER):INTEGER • VAR I,R:INTEGER; • BEGIN • R := 0; • FOR I:=MIN TO MAX DO • R:=R+TAB[I]; • END;

  48. IMBRICATION/VISIBILITEPROGRAM P; • CONST A = 3; TYPE B = CHAR; VAR C : B; • PROCEDURE X; • CONST A = 4; TYPE B = INTEGER; VAR C : B; • PROCEDURE Y; • CONST A = 5; TYPE B = REAL; VAR C : B; • PROCEDURE Z; • BEGIN • END • BEGIN • END • BEGIN • END; • BEGIN • END.

  49. PASCALLANGAGE NON MODULAIRE • UN SEUL SOURCE • MAINTENANCE • EXTENSION INCLUDE • {$I definitions.def } • COMPILATION LONGUE • EXTENSION REFERENCE EXTERNE • NON PORTABLE • DUPLICATION DES DEFINITIONS (SAUF PARTAGE PAR INCLUDE)

  50. MODULARITE A LA SFIMEN PASCAL CROISE trans_def_ref trans_def_ref M1.DEF M1.REF M2.DEF M2.REF include M1.DEF include M2.DEF M1.PAS M2.PAS include M1.REF

More Related