Che cos'è lo pseudocodice?


19

Ho visto molte menzioni di Pseudocodice recentemente, su questo sito e altri. Ma non capisco:

  • Che cos'è lo pseudocodice? Ad esempio, l'articolo di Wikipedia in basso dice "Utilizza le convenzioni strutturali di un linguaggio di programmazione, ma è destinato alla lettura umana piuttosto che alla lettura automatica". Questo significa che non è effettivamente utilizzato per creare programmi?

  • Perché è usato?

  • Come si usa
  • È considerato un linguaggio di programmazione? (Vedi la citazione di Wikipedia sopra)
  • È comunemente noto / usato?

Onestamente non so da dove cominciare. L'ho cercato su Google e ho visto l'articolo di Wikipedia sull'argomento , ma non capisco ancora di cosa si tratti.


7
Fornisci citazioni e domande specifiche dall'articolo di Wikipedia. Tutte le tue domande hanno una risposta lì. Se non riesci a capire le parole o le frasi, ti preghiamo di citare una parola o una frase specifica nella tua domanda in modo che possiamo spiegarla. È difficile sapere cosa hai trovato confuso in quell'articolo. Piuttosto che ripetere l'articolo qui, sarebbe utile se potessi fare riferimento a cose specifiche che ti hanno confuso.
S. Lott,

@ S.Lott: finito
dinamico il

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
È una via di mezzo tra linguaggio naturale e linguaggio di programmazione - è più formale del linguaggio parlato, ma meno formale di un vero linguaggio di programmazione.
Ingo

Risposte:


19

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.


14
Potrebbe essere utile aggiungere che lo pseudo-codice può vivere a qualsiasi livello di astrazione: potresti descrivere il funzionamento specifico di un algoritmo in un modo che è facilmente traducibile in vero codice non-pseudo, o potresti dare un livello molto alto panoramica di un approccio che utilizza "metodi" o "oggetti" definiti in modo molto ampio. È un ampio spettro.
Joachim Sauer,

8

Che cos'è lo pseudocodice? Ad esempio, l'articolo di Wikipedia in basso dice "Utilizza le convenzioni strutturali di un linguaggio di programmazione, ma è destinato alla lettura umana piuttosto che alla lettura automatica". Questo significa che non è effettivamente utilizzato per creare programmi?

È esattamente questo, è un codice scritto in una forma amichevole per l'uomo. Non può essere utilizzato per creare un programma di lavoro.

Perché è stato realizzato / utilizzato?

Perché Pseudocode è veloce da scrivere e veloce da leggere. Poiché non ha parti specifiche della lingua, è più chiaro da leggere. È anche indipendente dalla lingua, quindi chiunque può leggerlo (per questo motivo è usato in molti libri di testo)

È considerato un linguaggio di programmazione? Vedi la citazione di Wikipedia sopra.

No. Un linguaggio di programmazione richiede più di una semplice struttura. Richiede semantica formale, che manca di pseudocodice.

È comunemente noto / usato?

Sì. Chiunque al di sopra di un livello junior dovrebbe sapere come leggere / scrivere pseudocodici. È essenziale per leggere molti libri di testo e pianificare il codice in un team.


6

Se hai letto l'articolo wiki, la maggior parte delle domande dovrebbe essere chiara. Cercherò di rispondere loro in un modo più semplice qui. Dai un'occhiata a questi 2 esempi:

Parte 1 - Esempi

Codice n. 1 - Registrazione cliente - Un esempio di fasi del processo:

  1. Il cliente passa alla schermata di registrazione
  2. Il cliente inserisce i suoi dettagli.
  3. Se vengono inseriti dettagli validi, salvare le informazioni sul cliente nel database
  4. Finestra di dialogo Mostra altro con messaggio di errore 100.

Codice n. 2 - Convalida nome cliente - Un esempio di funzione di programmazione

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

Parte 2 - Ora alle tue domande

Che cos'è lo pseudocodice?

È un modo per scrivere passaggi di un algoritmo o di un processo.

Perché è stato realizzato / utilizzato?

Viene utilizzato per mostrare i passaggi del processo o dell'algoritmo senza dipendere da un linguaggio di programmazione specifico o da notazioni speciali.

È considerato un linguaggio di programmazione?

Non è compilabile e questo perché non ha una sintassi specifica e quindi non è un linguaggio di programmazione.

Se è così, è capace come, diciamo, Python?

Può essere reso capace come vuoi che sia. Puoi scrivere dichiarazioni come: Se l'età è valida ...

È comunemente noto / usato?

Sì. È utile quando si pensa agli algoritmi e agli analisti aziendali fornire specifiche.


@Jae, apprezzo il montaggio.
NoChance,

4

Il miglior esempio di Pseudocodice è stato quando ho condiviso un ufficio con un programmatore FORTRAN, mentre stavo programmando in Pascal. Ogni volta che ci aiutavamo a vicenda, dovevamo scriverlo in Pseudocodice. Al momento non conoscevo FORTRAN, quindi non c'è modo per me di ottenere la sintassi corretta (soprattutto tutti i rientri richiedevano posizioni per segni specifici). Non ha mai dovuto scrivere con punto e virgola. Sulla lavagna abbiamo scritto in uno Pseudocodice in modo che potesse essere compreso, senza impantanarsi su regole di sintassi complesse.

Non ci sono costrutti rigorosi per Pseudocodice. Se lo scrittore conosce un linguaggio che usa "{" dopo un'istruzione if, lo mette alla lavagna, se conosce Python non lo sa. L'obiettivo è quello di delineare rapidamente l'approccio di base al problema, non del codice assolutamente corretto.

Gli insegnanti possono usarlo per fornire una guida a uno studente, senza dare loro la risposta corretta. Una volta che ne sapete di più, uno pseudocodice in una lingua dovrebbe essere naturale da usare durante lo sketch dei frammenti di codice.


2

Lo pseudocodice non è una lingua, non una convenzione. Ogni libro di testo o carta userebbe la propria versione dello pseudocodice. Come con molti altri "linguaggi" informali matematici, nel migliore dei casi sarebbe descritto in modo informale nel documento stesso, nel peggiore dei casi gli autori si aspetterebbero che sia abbastanza "ovvio".


Nel migliore dei casi è abbastanza ovvio non richiedere alcuna descrizione formale o informale;).
Abele,

@Abel, non esiste un formalismo "ovvio". Anche qualcosa di così "ovvio" come l'aritmetica decimale deve essere correttamente introdotto. Altrimenti la confusione è inevitabile, sfortunatamente. Non ho mai visto uno pseudocodice inequivocabile senza almeno qualche introduzione formale allegata.
SK-logic

Questo thread riguarda lo pseudocodice. Il formalismo non ha nulla a che fare con questo. Ma il mio commento è stato "gioco di parole";).
Abele,

@Abel, anche un linguaggio astratto è un formalismo (almeno se usato in un documento più o meno scientifico).
SK-logic,

2

Cos'è il codice pseudo?

Lo pseudo codice è sostanzialmente scritto istruzioni su cosa dovrebbe fare un programma per completare un'operazione. Lo pseudo codice è scritto nella tua lingua parlata. Basta scrivere i passaggi di un algoritmo o di una procedura per rendere più semplice la lettura e la conversione da parte dell'utente o di qualcun altro in un vero linguaggio di programmazione.

Perché è stato realizzato / utilizzato?

È stato creato per aiutarti a specificare i passaggi di una procedura, processo o algoritmo senza utilizzare un linguaggio di programmazione. Una possibile alternativa è usare i diagrammi di flusso.

È considerato un linguaggio di programmazione?

No, non è un linguaggio di programmazione, poiché non esistono regole formali.

È comunemente noto / usato?

Personalmente, cerco sempre di usare lo pseudo codice quando scrivo algoritmi o procedure complesse.


0

La mia definizione personale di pseudocodice è "la roba che scrivo in un inglese semplice su un foglio di carta durante la progettazione del codice"

Prima di codificare da un "design" pseudocodice, aggiungerò il mio pseudocodice come commenti. Quindi, lavorando su quei commenti, posso aggiungere il codice "effettivo" che esegue l'attività descritta.

Potrebbe esserci un nome formale, di cui non sono a conoscenza, per questo metodo di codifica, e lo uso solo quando faccio qualcosa di nuovo / complicato.


-4

Come ha detto il mio docente di programmazione:

Pseudocodice è la versione inglese di qualsiasi linguaggio di programmazione.


2
-1 Non utile. La citazione ha senso solo tra una spiegazione dello pseudocodice (mancante in questa risposta). Altrimenti, potrebbe essere abbastanza fuorviante. Un principiante potrebbe chiedersi: beh, i metodi di C # sono tutti in inglese, quindi ciò significa che il C # che sto usando è Pseudocode, giusto ...? Come lo chiamano quando usano C # in Germania?
doppelgreener,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.