Qu'est-ce que le pseudocode?

19

J'ai vu beaucoup de mentions de pseudocode récemment, sur ce site et sur d'autres. Mais je ne comprends pas:

  • Qu'est-ce que le pseudocode? Par exemple, l'article Wikipédia ci-dessous dit "Il utilise les conventions structurelles d'un langage de programmation, mais est destiné à la lecture humaine plutôt qu'à la lecture machine". Est-ce à dire qu'il n'est pas réellement utilisé pour créer des programmes?

  • Pourquoi est-il utilisé?

  • Comment est-ce utilisé?
  • Est-il considéré comme un langage de programmation? (Voir la citation Wikipedia ci-dessus)
  • Est-il communément connu / utilisé?

Honnêtement, je ne sais pas par où commencer. Je l'ai googlé et j'ai vu l'article Wikipedia sur le sujet , mais je ne comprends toujours pas ce que c'est.

Dynamique
la source
7
Veuillez fournir des citations et des questions spécifiques de l'article Wikipedia. Toutes vos questions y sont répondues. Si vous ne comprenez pas les mots ou les expressions, veuillez citer un mot ou une expression spécifique dans votre question afin que nous puissions l'expliquer. Il est difficile de savoir ce que vous avez trouvé déroutant dans cet article. Plutôt que de répéter cet article ici, il serait utile que vous puissiez faire référence aux choses spécifiques qui vous ont dérouté.
S.Lott
@ S.Lott: Terminé
Dynamic
20
while (you.doNotUnderstand(pseudocode)) { q = you.askQuestion(); a = we.answer(q); you.digestAnswer(a) }
Joachim Sauer
3
if (question.IsAnswered) then you.UnderstandPseudoCode <- true
e-MEE
1
Il se situe à mi-chemin entre le langage naturel et le langage de programmation - il est plus formel que le langage parlé, mais moins formel qu'un vrai langage de programmation.
Ingo

Réponses:

19

Le pseudocode n'est pas, comme son nom l'indique, du vrai code, mais il ressemble à du code. Il aide les gens à mieux comprendre un domaine ou une solution à un problème sans avoir à ajouter tous les bagages nécessaires lors de l'utilisation d'une vraie langue.

En bref: il est utilisé uniquement à des fins d'illustration.

Pseudocode et programmation
Il n'y a pas de définition ou de règle fixe de pseudocode, il peut être différent à chaque fois. Ce n'est pas un (vrai) langage de programmation et personne ne le considérera comme tel. Il ne peut pas être compilé ou utilisé comme un véritable langage de programmation: si vous pouviez le faire, il cesserait d'être un pseudocode. Le pseudocode n'a pas besoin d'être déterministe (une nécessité pour les ordinateurs de compiler), il doit plutôt être compris par les humains. Pour utiliser le pseudocode, vous devrez le convertir dans votre langage de programmation préféré. Ce processus de conversion peut être différent à chaque fois et aucune règle ne peut être donnée car, encore une fois, le pseudocode est comme la liberté d'expression: il peut prendre n'importe quelle forme.

Utilisations
Il est couramment utilisé, en particulier dans la phase de conception des projets pour aider à comprendre une certaine approche d'un problème. Il est également couramment utilisé dans la conception d'algorithmes ou lorsque les enseignants dessinent quelque chose au tableau. Dans tous ces cas, il n'est pas nécessaire de compiler le code, vous voulez juste comprendre le problème / la solution.

Types de pseudocode Le
pseudocode peut être, mais ne doit pas nécessairement être d'un certain type, c'est-à-dire que vous pouvez avoir un pseudocode basé sur la pile pour illustrer MSIL, vous pouvez avoir un pseudocode impératif pour illustrer Java, C #, C ++, Python, vous peut avoir un pseudocode fonctionnel pour illustrer F #, Haskell, SQL etc.

Exemples
Du haut de ma tête, mais tout se passe, car le pseudocode peut être inventé sur place:

Pseudocode XML, montrant une structure tête + corps qui permet plusieurs éléments p:

<head ...
   <title ...
</
<body ...>
   (<p>...)+
</

Pseudocode impératif, montrant le problème du diamant dans les langues qui prennent en charge l'héritage multiple:

class A() { readFile(); }
class B() : A {}       // overrides readFile in A
class C() : A {}       // overrides readFile in A
class D() : B, C {}    // what definition of readFile should be used?

Les deux exemples ci-dessus ressemblent évidemment à un (type de) langage, mais ne sont pas vraiment ce langage et ne peuvent pas être compilés. Ils illustrent plutôt quelque chose que vous voulez expliquer.

Abel
la source
14
Il pourrait être utile d'ajouter que le pseudo-code peut vivre à n'importe quel niveau d'abstraction: vous pouvez décrire le fonctionnement spécifique d'un algorithme d'une manière facilement traduisible en un vrai non-pseudo-code, ou vous pouvez donner un niveau très élevé aperçu d'une approche utilisant des "méthodes" ou des "objets" très largement définis. C'est un large spectre.
Joachim Sauer
8

Qu'est-ce que le pseudocode? Par exemple, l'article Wikipédia ci-dessous dit "Il utilise les conventions structurelles d'un langage de programmation, mais est destiné à la lecture humaine plutôt qu'à la lecture machine". Est-ce à dire qu'il n'est pas réellement utilisé pour créer des programmes?

C'est exactement cela, c'est du code écrit sous une forme conviviale. Il ne peut pas être utilisé pour créer un programme de travail.

Pourquoi a-t-il été fabriqué / est-il utilisé?

Parce que le pseudocode est rapide à écrire et à lire. Comme il n'a pas de parties spécifiques à la langue, il est plus clair à lire. Il est également indépendant de la langue pour que tout le monde puisse le lire (pour cette raison, il est utilisé dans de nombreux manuels)

Est-il considéré comme un langage de programmation? Voir la citation de Wikipédia ci-dessus.

Non. Un langage de programmation nécessite plus qu'une simple structure. Cela nécessite une sémantique formelle, qui manque de pseudocode.

Est-il communément connu / utilisé?

Oui. Toute personne au-dessus d'un niveau junior devrait savoir lire / écrire le pseudocode. Son essentiel pour lire beaucoup de manuels et planifier le code en équipe.

Tom Squires
la source
6

Si vous avez lu l'article wiki, la plupart de vos questions doivent être claires. J'essaierai d'y répondre de manière plus simple ici. Jetez un œil à ces 2 exemples:

Partie 1 - Exemples

Code # 1 - Enregistrement client - Un exemple d'étapes de processus:

  1. Le client passe à l'écran d'enregistrement
  2. Le client entre ses coordonnées.
  3. Si des détails valides sont entrés, enregistrez les informations client dans la base de données
  4. Sinon, afficher la boîte de dialogue avec le message d'erreur 100.

Code # 2 - Valider le nom du client - Un exemple de fonction de programmation

Function ValidateCustomerName(Name1)

If (Name1 is entered and Name2 is entered) then return 1

If (Name1 is not entered) 

   Send Error Message

   return 0

Endif

...

End Function

Partie 2 - Maintenant à vos questions

Qu'est-ce que le pseudocode?

C'est un moyen d'écrire les étapes d'un algorithme ou d'un processus.

Pourquoi a-t-il été fabriqué / est-il utilisé?

Il est utilisé pour afficher les étapes du processus ou de l'algorithme sans dépendre d'un langage de programmation spécifique ou de notations spéciales.

Est-il considéré comme un langage de programmation?

Il n'est pas compilable et c'est parce qu'il n'a pas de syntaxe spécifique et donc ce n'est pas un langage de programmation.

Si oui, est-il aussi capable que, disons, Python?

Il peut être rendu aussi performant que vous le souhaitez. Vous pouvez écrire des déclarations comme: Si l'âge est valide ...

Est-il communément connu / utilisé?

Oui. Il est utile lors de la réflexion sur les algorithmes et pour les analystes commerciaux de fournir des spécifications.

Aucune chance
la source
@Jae, j'apprécie la retouche.
NoChance
4

Le meilleur exemple de Pseudocode était quand je partageais un bureau avec un programmeur FORTRAN, alors que je programmais en Pascal. Chaque fois que nous nous entraidions, nous devions l'écrire en pseudocode, à l'époque je ne connaissais pas FORTRAN, donc il n'y avait aucun moyen pour moi d'obtenir la syntaxe correcte (en particulier tous les retraits requis pour des marques spécifiques). Il n'a jamais eu à écrire avec des points-virgules. Sur le tableau blanc, nous avons écrit dans un pseudocode afin qu'il puisse être compris, sans s'enliser dans des règles de syntaxe complexes.

Il n'y a pas de constructions strictes pour le pseudocode. Si l'écrivain connaît un langage qui utilise "{" après une instruction if, il le met sur le tableau, s'il connaît le python, il ne le sait pas. Le but est d'esquisser rapidement l'approche de base du problème, pas un code absolument correct.

Les enseignants peuvent l'utiliser pour guider un élève, sans lui donner la bonne réponse. Une fois que vous en savez plus, un pseudocode de langue devrait être naturel à utiliser lors de l'esquisse de fragments de code.

mhoran_psprep
la source
2

Le pseudocode n'est pas un langage, pas une convention. Chaque manuel ou article utiliserait sa propre version du pseudocode. Comme pour de nombreux autres "langages" mathématiques informels, dans le meilleur des cas, il serait décrit de manière informelle dans l'article lui-même, dans le pire des cas, les auteurs s'attendraient à ce qu'il soit suffisamment "évident".

SK-logic
la source
Dans le meilleur des cas, il est évident qu'il ne nécessite aucune description formelle ou informelle;).
Abel
@Abel, il n'y a pas de formalisme "évident". Même quelque chose d'aussi "évident" que l'arithmétique décimale doit être correctement introduit. Sinon, la confusion est inévitable, malheureusement. Je n'ai jamais vu un pseudocode sans ambiguïté sans au moins une introduction formelle attachée.
SK-logic
Ce fil porte sur le pseudocode. Le formalisme n'a rien à voir avec cela. Mais mon commentaire était "jeu de mots";).
Abel
@Abel, un langage abstrait est aussi un formalisme (du moins lorsqu'il est utilisé dans un article plus ou moins scientifique).
SK-logic
2

Qu'est-ce que le pseudo code?

Le pseudo-code est essentiellement des instructions écrites de ce qu'un programme doit faire pour terminer une opération. Le pseudo code est écrit dans votre langue parlée. Vous écrivez simplement les étapes d'un algorithme ou d'une procédure pour le rendre plus facile pour vous ou quelqu'un d'autre à le lire et à le convertir en un véritable langage de programmation.

Pourquoi a-t-il été fabriqué / est-il utilisé?

Il a été conçu pour vous aider à spécifier les étapes d'une procédure, d'un processus ou d'un algorithme sans utiliser de langage de programmation. Une alternative possible consiste à utiliser des organigrammes.

Est-il considéré comme un langage de programmation?

Non, ce n'est pas un langage de programmation, car il n'y a pas de règles formelles.

Est-il communément connu / utilisé?

Personnellement, j'essaie toujours d'utiliser du pseudo-code lors de l'écriture d'algorithmes ou de procédures complexes.

Chris Mylonas
la source
0

Ma définition personnelle du pseudocode est "ce que j'écris en anglais simple sur une feuille de papier lors de la conception du code"

Avant de coder à partir d'un "design" de pseudocode, j'ajouterai mon pseudocode en commentaire. En travaillant ensuite sur ces commentaires, je peux ajouter le code "réel" qui exécute la tâche décrite.

Il peut y avoir un nom formel, que je ne connais pas, pour cette méthode de codage, et je ne l'utilise que pour faire quelque chose de nouveau / compliqué.

AnthonyBlake
la source
-4

Comme l'a dit mon professeur de programmation:

Le pseudocode est la version anglaise de tout langage de programmation.

CincauHangus
la source
2
-1 Pas utile. La citation n'a de sens que dans une explication du pseudocode (manquante dans cette réponse). Sinon, cela pourrait être trompeur. Un débutant pourrait se demander: eh bien, les méthodes de C # sont toutes en anglais, ce qui signifie que le C # que j'utilise est du pseudocode, non ...? Comment l'appellent-ils lorsqu'ils utilisent C # en Allemagne?
doppelgreener