1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Chap. 4 Recherche en Table
Chapitre annexe. Récursivité
Formation universitaire à .NET: Introduction à C#
Initiation à la programmation et algorithmique cours 2
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Sensibilisation à l’Algorithmique et structure de données
Calculs de complexité d'algorithmes
Algorithmique Résume.
Visual Basic for Applications
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Les bases de l’Algorithmique
Principes de programmation (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Langage C Révision.
Cours de programmation
Python La structure alternative
Algorithmique et Programmation
Les piles Djamal Rebaïne.
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Sémantique axiomatique
Les instructions PHP pour l'accès à une base de données MySql
Le codage des nombres en informatique
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
CHAINE DE CARACTERES : Définition :
Semaine #1 INF135 par Frédérick Henri.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Méthode et Outils pour la Programmation
Répéter dans un programme avec une Instruction itérative
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Plan cours La notion de pointeur et d’adresse mémoire.
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
L’écriture des grands nombres: les puissances de 10
Un survol du language C.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
 Syntaxe du langage PHP
Cours LCS N°4 Présenté par Mr: LALLALI
1. Ook Christophe Delagarde, septembre 1999 I.U.T., Université de la Méditerrainée 2.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Module algorithmique et programmation
Comprendre le SGBDR Microsoft Access – partie 2
Introduction à la programmation (420-PK2-SL) cours 8
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Introduction à la programmation (420-PK2-SL) cours 6 Gestion des applications Technologie de l’information (LEA.BW)
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
Chapitre 4 La représentation des nombres.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Les Structures simples
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Introduction au langage C
FLASH Séance 2 Xiaoliang Liang Morgane Le Nan SI28 P05.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
O UTILS DE P ROGRAMMATION P OUR LES M ATHÉMATIQUES Mr. BENDIB. I MAA, LAMIS Laboratory, Université Larbi Tébessi - Tébessa.
Transcription de la présentation:

1

Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2

3 Définition du Spoon

4 Spoon Origine du langage Le langage Spoon est équivalent au brainfuck mais avec des mots constitués de 0 et 1.

5 Instructions Définition du Spoon

6 En spoon, il n’y a que 8 instructions, dont voici les significations : 010incrémente (augmente de 1) le pointeur. 011décrémente (diminue de 1) le pointeur. 1 incrémente l'octet du tableau sur lequel est positionné le pointeur (l'octet pointé). 000décrémente l'octet pointé.

sortie de l'octet pointé (valeur ASCII) entrée d'un octet dans le tableau à l'endroit où est positionné le pointeur (valeur ASCII) saute à l'instruction après le 0011 correspondant si l'octet pointé est à retourne à l'instruction après le si l'octet pointé est différent de 0.

Sortie de tout le tableau mémoire Fin immédiate du programme Il existe deux instructions de plus que pour le brainfuck... Ce qui simplifie grandement l'écriture des programmes !!

9 Comprendre avec le C Instructions Définition du Spoon

10 Chaque instruction a son équivalent en C SpoonC 010 ​ ptr++; ​ 011 ​ ptr--; ​ 1​1​ (*ptr)++; ​ 000 ​ (*ptr)--; ​ On comprend ainsi beaucoup mieux …

​ putchar(*ptr); ​ ​ (*ptr) = getchar(); ​ ​ while(*ptr) { ​ 0011 ​ }

12 Comprendre avec le C Instructions Hello Word ! Définition du Spoon

13 Un premier programme : Le traditionnel « Hello Word ! » Boucle initiale qui affecte des valeurs utiles au tableau à la sortie de la boucle le tableau contient: 'H' = 72 (70 plus 2) 'e' = 101 (100 plus 1) 'l' = 108 (101 plus 7) 'l' = 'o' = 111 (108 plus 3) espace = 32 (30 plus 2) 'W' = 87 (72 plus 15) 'o' = 'r' = 114 (111 plus 3) 'l' = 108 (114 moins 6) 'd' = 100 (108 moins 8) '!' = 33 (32 plus 1) nouvelle ligne = 10 Attention : Tout ce qui n’est pas une instruction … …est un commentaire !

14 Le programme peut donc être écrit ainsi : En enlevant tout commentaires parasites !! Le code gagne en lisibilité et apparaît sous sa forme la plus belle aux yeux du programmateur !

15 Comprendre avec le C Instructions Hello Word ! Combinaisons d’instructions Définition du Spoon

16 Le spoon permet la création d’instructions plus complexes en associant des instructions simple : -Remise à zéro de l’octet pointé -Entrée Sortie d’un caractère -Boucle simple -Manipulation de pointeur -… et bien plus encore !

17 Remise à zéro de l'octet pointé L'octet est décrémenté (boucle ) jusqu'à ce que sa valeur ait atteint Entrée/Sortie d'un caractère Affiche à l'écran un caractère entré au clavier. Boucle simple Boucle affichant les caractères entrés au clavier. La fin de la saisie est ici signalée par un 0 (les implémentations peuvent différer sur ce point)

18 Manipulation de pointeur Une version améliorée de la boucle précédente, dans laquelle les caractères saisis par l'utilisateur sont stockés dans un tableau en vue d'une utilisation future, en déplaçant le pointeur à chaque fois Addition Ce code ajoute l'octet courant (en le détruisant, il est donc remis à 0) à l'octet suivant.

19 Comprendre avec le C Instructions Hello Word ! Combinaisons d’instructions Instructions conditionnelles Définition du spoon

20 Les instructions conditionnelles du spoon correspondent au bloc « if » du C Un moyen simple d’écrire un bloc if est : code Voyons maintenant plus en détail ce bloc …

21 Si on a besoin de faire une condition après laquelle le code s'arrête, on peut se contenter de " code ", puisque la partie " " sert uniquement à mettre le pointeur, à l'état final, sur le deuxième octet dans les deux cas. "010" : on met le pointeur sur n Si n est égal à 0, la boucle ne s'exécute pas et le pointeur est toujours sur n, on revient alors en arrière ("011", on est alors sur le 2ème octet) puis la boucle ne s'exécute pas puisque nous sommes sur le 0 ( revient à dire "va sur le premier octet nul en partant de l'octet pointé inclus"). Si n est différent de 0, la boucle s'exécute et le code aussi, le pointeur revient alors sur le 2ème octet et la boucle s'arrête, puisque cet octet est égal à 0. Le pointeur est donc sur le 2ème octet. On revient ensuite en arrière ("010"), donc sur le premier octet (égal à 1) puis, comme dit, la boucle emmène le pointeur sur le premier octet nul suivant l'octet pointé inclus, or le premier est différent de 0 et le second égal à 0, ce qui amène le pointeur sur le deuxième octet.

22 Préparer le prochain cours Comprendre avec le C Instructions Hello Word ! Combinaisons d’instructions Instructions conditionnelles Définition du spoon

23 A travailler : -Commencer à voir les macro-définition du spoon -Voir les opérations mathématique (addition et multiplication) -Réviser ce cours (contrôle en fin de séance)