Lo pseudocodice è, come suggerisce il nome, non un codice reale, ma sembra un codice. Aiuta le persone a comprendere meglio un dominio o una soluzione problematica senza dover aggiungere tutto il bagaglio necessario quando si utilizza un linguaggio reale.
In breve: è usato solo a scopo illustrativo.
Pseudocodice e programmazione
Non esiste una definizione o regola fissa di pseudocodice, che può essere diversa ogni volta. Non è un linguaggio (reale) di programmazione e nessuno lo considererà uno. Non può essere compilato o utilizzato come un vero linguaggio di programmazione: se potessi farlo, smette di essere pseudocodice. Lo pseudocodice non deve essere deterministico (una necessità per la compilazione dei computer), ma deve essere compreso dagli umani. Per utilizzare lo pseudocodice, dovrai convertirlo nel tuo linguaggio di programmazione preferito. Questo processo di conversione può essere diverso ogni volta e nessuna regola può essere data perché, di nuovo, lo pseudocodice è come la libertà di parola: può assumere qualsiasi forma.
Usi
È comunemente usato, specialmente nella fase di progettazione di progetti per aiutare a comprendere un certo approccio a un problema. È anche comunemente usato nella progettazione di algoritmi o quando gli insegnanti disegnano qualcosa alla lavagna. In tutti questi casi non è necessario compilare il codice, vuoi solo capire il problema / soluzione.
I tipi di pseudocodice
possono essere pseudocodici , ma non devono essere di un certo tipo, ovvero è possibile avere uno pseudocodice basato su stack per illustrare MSIL, è possibile avere uno pseudocodice imperativo per illustrare Java, C #, C ++, Python, tu può avere uno pseudocodice funzionale per illustrare F #, Haskell, SQL ecc.
Esempi
Dall'alto della mia testa, ma tutto va bene, perché lo pseudocodice può essere inventato sul posto:
Pseudocodice XML, che mostra una struttura testa + corpo che consente più elementi p:
<head ...
<title ...
</
<body ...>
(<p>...)+
</
Pseudocodice imperativo, che mostra il problema del diamante in lingue che supportano l'ereditarietà multipla:
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?
I due esempi precedenti somigliano ovviamente a qualche (tipo di) linguaggio, ma non sono proprio quella lingua e non possono essere compilati. Piuttosto illustrano qualcosa che vuoi spiegare.