Lo pseudocodice, come suggerisce il nome, non è un codice reale, ma sembra un codice. Aiuta le persone a comprendere meglio un dominio problematico o una soluzione senza dover aggiungere tutto il bagaglio necessario quando si utilizza una lingua reale.
In breve: è usato solo a scopo illustrativo.
Pseudocodice e programmazione
Non esiste una definizione o una regola fissa di pseudocodice, può essere diversa ogni volta. Non è un linguaggio di programmazione (reale) e nessuno lo considererà uno. Non può essere compilato o usato come un vero linguaggio di programmazione: se lo si può fare, cessa di essere pseudocodice. Lo pseudocodice non ha bisogno di essere deterministico (una necessità per i computer di compilare), ma ha bisogno di essere compreso dagli esseri umani. Per usare lo pseudocodice, devi 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 dei progetti per aiutare a comprendere un determinato approccio a un problema. È anche comunemente usato nella progettazione dell'algoritmo, o quando gli insegnanti disegnano qualcosa sulla lavagna. In tutti questi casi non è necessario compilare il codice, vuoi solo capire il problema / soluzione.
Tipi di pseudocode
Lo pseudocodice può essere, ma non deve essere di un certo tipo, cioè, si può avere uno pseudocodice basato su stack per illustrare MSIL, si può avere uno pseudocodice imperativo per illustrare Java, C #, C ++, Python, si può avere un pseudocodice funzionale per illustrare F #, Haskell, SQL ecc.
Esempi
Dalla cima della mia testa, ma tutto va bene, perché lo pseudocodice può essere inventato sul momento:
Pseudocodice XML, che mostra una struttura testa + corpo che consente più elementi P:
<head ...
<title ...
</
<body ...>
(<p>...)+
</
Pseudocodice imperativo, che mostra il problema dei rombi nelle 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 di cui sopra ovviamente assomigliano a qualche (tipo di) linguaggio, ma non sono veramente quel linguaggio e non possono eventualmente essere compilati. Piuttosto illustrano qualcosa che vuoi spiegare.